package br.gov.sjc.dao;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;

public class BaseDAO extends SQLiteOpenHelper {
    public static final String DATABASE_NAME = "AluguelSocial";
    public static final int DATABASE_VERSION = 1;
    public static final String NOME_ARQUIVO = "aluguelSocial-";
    public static final String FILES = "/data/data/br.gov.sjc.aluguelsocial/files/";
    
    
    public BaseDAO(Context context) {
		super(context, DATABASE_NAME, null, DATABASE_VERSION);
		
	}
    /**
     * **** 1
     */
    //TRABALHOOFR
    public static final String TBL_TRABALHOOFR = "tab_TrabalhoOFR";
    public static final String TRABALHOOFR_ID = "_id";
    public static final String TRABALHOOFR_SIASN = "SiasN";
    public static final String TRABALHOOFR_IDMEMBRO = "idMembro";
    public static final String TRABALHOOFR_FONTE = "Fonte";
    public static final String TRABALHOOFR_VALOR = "Valor";
    public static final String TRABALHOOFR_COMPROVANTE = "Comprovante";
    //TRABALHO
    public static final String TBL_TRABALHO = "tab_Trabalho";
    public static final String TRABALHO_ID = "_id";
    public static final String TRABALHO_SIASN = "SiasN";
    public static final String TRABALHO_IDMEMBRO = "idMembro";
    public static final String TRABALHO_TIPO = "Tipo";
    public static final String TRABALHO_RENDIMENTO = "Rendimento";
    public static final String TRABALHO_HORASPORMES = "HorasporMes";
    public static final String TRABALHO_OCUPACAO = "Ocupacao";
    public static final String TRABALHO_INSS = "INSS";
    //TELEFONE
    public static final String TBL_TELEFONE = "tab_Telefone";
    public static final String TELEFONE_ID = "_id";
    public static final String TELEFONE_SIASN = "SiasN";
    public static final String TELEFONE_DDD = "DDD";
    public static final String TELEFONE_TELEFONE = "Telefone";
    public static final String TELEFONE_TIPO = "TipoTelefone";
    public static final String TELEFONE_UTILIZACAO = "TipoUtilizacao";
    public static final String TELEFONE_CONTATO = "Contato";
    //BENEFICIOS
    public static final String TBL_BENEFICIO = "tab_Beneficio";
    public static final String BENEFICIO_ID = "_id";
    public static final String BENEFICIO_SIASN = "SiasN";
    public static final String BENEFICIO_CIDADAO = "Cidadao";
    public static final String BENEFICIO_PROGRAMA = "Programa";
    public static final String BENEFICIO_ANO = "Ano";
    public static final String BENEFICIO_SITUACAO = "Situacao";
    
    /**
     *  ***** 2
     */
  //Estrutura da tabela tab_TrabalhoOFR (sql statement)
    private static final String CREATE_TRABALHOOFR = "create table if not exists " +
    		TBL_TRABALHOOFR + "( " + TRABALHOOFR_ID + " integer primary key autoincrement, " + 
    			TRABALHOOFR_SIASN     + " integer , " +
    			TRABALHOOFR_IDMEMBRO + " integer , " +
    			TRABALHOOFR_FONTE + " text , " +
    			TRABALHOOFR_COMPROVANTE + " text , " +
    			TRABALHOOFR_VALOR + " text );";
    
    //Estrutura da tabela tab_Trabalho (sql statement)
    private static final String CREATE_TRABALHO = "create table if not exists " +
    		TBL_TRABALHO + "( " + TRABALHO_ID + " integer primary key autoincrement, " + 
    			TRABALHOOFR_SIASN     + " integer , " +
    			TRABALHOOFR_IDMEMBRO + " integer , " +
    			TRABALHO_TIPO + " text, " +
    			TRABALHO_RENDIMENTO + " text, " +
    			TRABALHO_HORASPORMES + " text, " +
    			TRABALHO_OCUPACAO + " text, " +
    			TRABALHO_INSS + " text);";
    
    //Estrutura da tabela tab_Telefone (sql statement)
    private static final String CREATE_TELEFONE = "create table if not exists " +
    		TBL_TELEFONE + "( " + TELEFONE_ID + " integer primary key autoincrement, " + 
    			TELEFONE_SIASN     + " integer , " +
    			TELEFONE_DDD + " text, " +
    			TELEFONE_TELEFONE + " text, " +
    			TELEFONE_TIPO + " text, " +
    			TELEFONE_UTILIZACAO + " text, " +
    			TELEFONE_CONTATO + " text);";

    //Estrutura da tabela tab_Beneficio (sql statement)
    private static final String CREATE_BENEFICIO = "create table if not exists " +
    		TBL_BENEFICIO + "( " + BENEFICIO_ID + " integer primary key autoincrement, " + 
    		BENEFICIO_SIASN     + " integer , " +
    		BENEFICIO_CIDADAO + " text, " +
    		BENEFICIO_PROGRAMA + " text, " +
    		BENEFICIO_ANO + " text, " +
    		BENEFICIO_SITUACAO + " text " +
    		" );";
         @Override
    public void onCreate(SQLiteDatabase database) {
        //Criação da tabela 
        	 /**
        	  *  *** 3
        	  */
        database.execSQL(CREATE_TELEFONE);
        database.execSQL(CREATE_TRABALHOOFR);
        database.execSQL(CREATE_TRABALHO);
        database.execSQL(CREATE_BENEFICIO);
        
    }
 
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        //Caso seja necessário mudar a estrutura da tabela
        //deverá primeiro excluir a tabela e depois recriá-la
    	/**
    	 *  *** 4
    	 */
    	db.execSQL("DROP TABLE IF EXISTS " + TBL_TRABALHOOFR);
    	db.execSQL("DROP TABLE IF EXISTS " + TBL_TRABALHO);
    	db.execSQL("DROP TABLE IF EXISTS " + TBL_TELEFONE);
    	db.execSQL("DROP TABLE IF EXISTS " + TBL_BENEFICIO);
        
        onCreate(db);
    }
    
    public boolean recreateTable(SQLiteDatabase db) {
        boolean retorno = false;
    	//Caso seja necessário mudar a estrutura da tabela
        //deverá primeiro excluir a tabela e depois recriá-la
    	/**
    	 *  *** 5
    	 */
        try{
    	db.execSQL("DROP TABLE IF EXISTS " + TBL_TRABALHOOFR);
    	db.execSQL("DROP TABLE IF EXISTS " + TBL_TRABALHO);
    	db.execSQL("DROP TABLE IF EXISTS " + TBL_TELEFONE);
    	db.execSQL("DROP TABLE IF EXISTS " + TBL_BENEFICIO);
    	
    	onCreate(db);
    	retorno = true;
        }catch(Exception e){
        	Log.e(TBL_TRABALHOOFR,"ERRO MENSAGEM:"+e.getMessage());
        	Log.e(TBL_TRABALHO,"ERRO MENSAGEM:"+e.getMessage());
        	Log.e(TBL_TELEFONE,"ERRO MENSAGEM:"+e.getMessage());
        	Log.e(TBL_BENEFICIO,"ERRO MENSAGEM:"+e.getMessage());
        }
        
        
        return retorno;
    }
 

}
